import axIos from 'axios';
import $md5 from 'js-md5';

const ROOT_PATH = "/apis/cjlgb-upms";

/**
 * 账号登陆
 * @param params
 * @returns {Promise<AxiosResponse<T>>}
 */
export function login(params) {
    //  将密码进行加密,并添加随机盐参数
    let salt = new Date().getTime();
    params['password'] = $md5($md5(params['password']) + salt);
    params['salt'] = salt;
    return axIos.post(ROOT_PATH + "/auth/login", params);
}

/**
 * 账号退出
 * @returns {Promise<AxiosResponse<T>>}
 */
export function logout() {
    return axIos.get(ROOT_PATH + "/auth/logout");
}

/**
 * 获取当前用户信息
 * @returns {Promise<AxiosResponse<T>>}
 */
export function getMeInfo() {
    return axIos.get(ROOT_PATH + '/user/getMeInfo');
}

/**
 * 分页查询用户信息
 * @param params
 * @returns {Promise<AxiosResponse<T>>}
 */
export function pagingQuerySysUser(params) {
    return axIos.get(ROOT_PATH + "/user/page",{ params : params });
}

/**
 * 添加系统用户
 * @param params
 * @returns {Promise<AxiosResponse<T>>}
 */
export function addSysUser(params) {
    return axIos.post(ROOT_PATH + "/user",params);
}

/**
 * 删除系统用户
 * @param userId
 * @returns {Promise<AxiosResponse<T>>}
 */
export function deleteSysUser(userId) {
    return axIos.delete(ROOT_PATH + "/user/" + userId);
}

/**
 * 获取部门列表
 * @returns {Promise<AxiosResponse<T>>}
 */
export function getSysDeptList() {
    return axIos.get(ROOT_PATH + "/dept/list");
}

/**
 * 添加部门
 * @param params
 * @returns {Promise<AxiosResponse<T>>}
 */
export function addSysDept(params) {
    return axIos.post(ROOT_PATH + "/dept",params);
}

/**
 * 修改部门
 * @param params
 * @returns {Promise<AxiosResponse<T>>}
 */
export function editSysDept(params) {
    return axIos.put(ROOT_PATH + "/dept",params);
}

/**
 * 删除部门
 * @param deptId
 * @returns {Promise<AxiosResponse<T>>}
 */
export function deleteSysDept(deptId) {
    return axIos.delete(ROOT_PATH + "/dept/" + deptId);
}

/**
 * 获取当前用户可视的菜单列表
 * @param pid
 * @returns {Promise<AxiosResponse<T>>}
 */
export function getMeMenus(pid) {
    return axIos.get(ROOT_PATH + "/menu/getMeMenus?pid=" + pid);
}

/**
 * 获取角色列表
 * @param params 查询条件
 * @returns {Promise<AxiosResponse<T>>}
 */
export function getSysRoleList(params) {
    return axIos.get(ROOT_PATH + '/role',{ params : params } );
}

/**
 * 添加系统角色
 * @param params
 * @returns {Promise<AxiosResponse<T>>}
 */
export function addSysRole(params) {
    return axIos.post(ROOT_PATH + '/role',params);
}

/**
 * 根据Id获取系统角色
 * @param roleId
 * @returns {Promise<AxiosResponse<T>>}
 */
export function getSysRole(roleId) {
    return axIos.get(ROOT_PATH + '/role/' + roleId);
}

/**
 * 修改系统角色信息
 * @param params
 * @returns {Promise<AxiosResponse<T>>}
 */
export function editSysRole(params) {
    return axIos.put(ROOT_PATH + '/role',params);
}

/**
 * 根据Id删除系统角色
 * @param roleId
 * @returns {Promise<AxiosResponse<T>>}
 */
export function deleteSysRole(roleId) {
    return axIos.delete(ROOT_PATH + "/role/" + roleId);
}

/**
 * 根据角色Id获取权限列表
 * @param roleId
 * @returns {Promise<AxiosResponse<T>>}
 */
export function getRoleAuthorities(roleId) {
    return axIos.get(ROOT_PATH + "/role/authorities/" + roleId);
}

/**
 * 修改某角色的权限列表
 * @param params
 * @returns {Promise<AxiosResponse<T>>}
 */
export function editAuthorities(params) {
    return axIos.put(ROOT_PATH + "/role/authorities",params);
}

/**
 * 获取菜单树形列表
 * @returns {Promise<AxiosResponse<T>>}
 */
export function getSysMenuTree() {
    return axIos.get(ROOT_PATH + "/menu/tree")
}

/**
 * 根据Id获取菜单信息
 * @param menuId
 * @returns {Promise<AxiosResponse<T>>}
 */
export function getSysMenu(menuId) {
    return axIos.get(ROOT_PATH + "/menu/" + menuId);
}

/**
 * 创建系统菜单
 * @param params
 * @returns {Promise<AxiosResponse<T>>}
 */
export function addSysMenu(params) {
    return axIos.post(ROOT_PATH + "/menu",params);
}

/**
 * 修改系统菜单信息
 * @param params
 * @returns {Promise<AxiosResponse<T>>}
 */
export function editSysMenu(params) {
    return axIos.put(ROOT_PATH + "/menu",params);
}

/**
 * 根据Id删除菜单信息
 * @param menuId
 * @returns {Promise<AxiosResponse<T>>}
 */
export function deleteSysMenu(menuId) {
    return axIos.delete(ROOT_PATH + "/menu/" + menuId);
}
